The invention relates generally to expert systems, and more particularly to rule-based systems.
Rule-based artificial intelligence systems typically include a set of rules, one or more facts or data in a working memory, and an inference engine that applies the rules to the facts in the working memory. Further, an inference engine generally performs the steps of matching a collection of objects to a given rule, selecting a rule from a list of rules whose conditions are completely matched by the objects, and execution of the selected rule.
Currently available inference engines typically match facts (data) against business rules, to infer conclusions, which then result in actions. Furthermore, during the execution of the selected rule step, the inference engine performs an existence test in connection with the conditions in the rule. Additionally, the inference engine performs a pattern matching step, which entails matching the new or existing facts against business rules. Unfortunately, the matching process in the inference engine is the most time consuming phase as each rule is compared against all objects.
A wide variety of techniques have been developed to aid in pattern matching step. For example, algorithms such as the linear algorithm, the Rete algorithm, and the treat and leaps algorithm are used for pattern matching by inference engines. These pattern matching algorithms are best suited for a small set of facts and an extremely large number of rules. Unfortunately, in case of the large set of the facts, use of the presently available techniques entails a substantial increase in resource requirements, which disadvantageously leads to diminished performance. More particularly, use of these techniques results in substantially high memory requirements. Additionally, the currently available techniques fail to respond to complex business rule conditions thereby resulting in a time-consuming and laborious process. Furthermore, the currently prevalent techniques are not scalable and hence result in additional setup costs.
It may therefore be desirable to develop a robust technique and system for the systematic execution of rules in the rule-based system that advantageously facilitates substantially superior time performance of the rule-based systems. In particular, there is a need for faster execution of the rules in the inference engine of the rule-based system. Additionally, there is also a need for a system that may be configured to aid in simplifying the workflow of a rule-based system, thereby optimizing the performance of the rule-based system.